﻿
using UnityEditor;

namespace Obi
{
    public class BooleanPreference
    {
        bool m_Value;
        string m_Name;
        bool m_Loaded;

        public BooleanPreference(string name, bool value)
        {
            m_Name = name;
            m_Loaded = false;
            m_Value = value;
        }

        private void Load()
        {
            if (m_Loaded)
                return;

            m_Loaded = true;
            m_Value = EditorPrefs.GetBool(m_Name, m_Value);
        }

        public bool value
        {
            get { Load(); return m_Value; }
            set
            {
                Load();
                if (m_Value == value)
                    return;
                m_Value = value;
                EditorPrefs.SetBool(m_Name, value);
            }
        }

        public static implicit operator bool(BooleanPreference s)
        {
            return s.value;
        }
    }
}
